
var selectedPage = null;
var headerObj = null;
var listtimeline = {};
var listpagedata = {};

function ListEvent(page){
	//最後がpageじゃないとダイアログの時バグる
	if(page.match(/list-.+-page$/)){
		changeListHeader(page);
		selectedPage = page;
		if(listpagedata.length == undefined) {
			listpagedata = $("div[id ^= 'list-'][id $= '-page']");
			if(listpagedata.length == 0) {
				listpagedata = "nolists";
			} else {
				for(index in listpagedata) {
					if(index == "length")
						break;
					listtimeline[$(listpagedata[index]).attr('slug')] = new Timeline('mylist-' + $(listpagedata[index]).attr('slug') + '-timeline', $(listpagedata[index]).attr('id').replace("-page", ""));
				}
			}
		}
		// 選択されたリストページがまだ作成されていない場合は初期化する
		if(listtimeline[$(page).attr("slug")]["timelineIds"].length == 0) {
			initializeListPage();
		}
	}else{
		if($(".change-navi:first").attr("href") != "#reply-page"){
			resetHeader();
		}
	}
}

function changeListHeader(nextPage){
	$(".change-navi").attr("href",nextPage);
	$(".change-navi span span.ui-btn-text").text($(nextPage).attr("slug"));
	$('.update-btn').click(updateEvent);
}

function resetHeader(){
	$(".change-navi").attr("href","#reply-page");
	$(".change-navi span span.ui-btn-text").text("Reply");
	$('.update-btn').click(updateEvent);
}

function updateList(pageId){
	var data = {
		list_id : $(selectedPage).attr("list_id"),
		slug : $(selectedPage).attr("slug")
	};
	$.mobile.showPageLoadingMsg();
	api.getStatusesOfLists(data, function(data) {
		$.mobile.hidePageLoadingMsg();
		if(data.length != 0){
			data.reverse();	//反対に並び替える
			for(index in data){
				tweet = data[index];
				if(!listtimeline[$("#" + pageId).attr("slug")].isContain(tweet.id)){
					listtimeline[$("#" + pageId).attr("slug")].prepend(tweet);
				}
			}
			/*
			//お気に入り、リツイートイベント
			$("div.list-content div.tweet_unit a.fav").click(favEvent);
			$("div.tweet_unit a.unfav").click(unfavEvent);
			$("div.tweet_unit a.rt").click(retweetEvent);
			$("div.tweet_unit a.unrt").click(unretweetEvent);
			*/
			//アカウントページのイベント
			$("div.list-content div.tweet_unit img").click(accountShowEvent);
			
			//個々のツイートページのイベント
			$("div.list-content div.tweet_unit .tweet").click(tweetShowEvent);
		}
	});
}

function initializeListPage(max_id) {

	var data = {
		list_id : $(selectedPage).attr("list_id"),
		slug : $(selectedPage).attr("slug")
	};
	if(max_id != null) {
		data['max_id'] = max_id;
	}
	$.mobile.showPageLoadingMsg();
	api.getStatusesOfLists(data, function(data) {
		//console.log(data);
		$.mobile.hidePageLoadingMsg();
		var last, count = 0;
		if(listtimeline[$(selectedPage).attr("slug")].timelineIds.length != 0) {
			last = listtimeline[$(selectedPage).attr("slug")].timelineIds[listtimeline[$(selectedPage).attr("slug")].timelineIds.length - 1];
		}
		for(index in data) {
			tweet = data[index];
			//max_idを指定した時、同じIDがとれてくるのでそれを回避
			if(last == null || last != tweet.id) {
				count++;
				listtimeline[$(selectedPage).attr("slug")].append(tweet);
			}
		}
		//アカウントページのイベント
		$("div.list-content div.tweet_unit img").click(accountShowEvent);

		//個々のツイートページのイベント
		$("div.list-content div.tweet_unit .tweet").click(tweetShowEvent);
/*
		//お気に入り、リツイートイベント
		$("div.tweet_unit a.fav").click(favEvent);
		$("div.tweet_unit a.unfav").click(unfavEvent);
		$("div.tweet_unit a.rt").click(retweetEvent);
		$("div.tweet_unit a.unrt").click(unretweetEvent);
		*/
		if(count > 0) {
			//次を見る奴
			listtimeline[$(selectedPage).attr("slug")].appendNextTweet();
			//次を見る
			$('#mylist-' + $(selectedPage).attr("slug") + '-timeline div:last').click(function() {
				$(this).remove();
				var max_id = listtimeline[$(selectedPage).attr("slug")].timelineIds[listtimeline[$(selectedPage).attr("slug")].timelineIds.length - 1];
				initializeListPage(max_id);
			});
		}
	});
}